package main

import "fmt"

// 函数
// 1.定义一个不需要参数也没有返回值的函数
func sayHello() {
	fmt.Println("hello world")
}

// 2.接收参数的函数
func sayHello2(name string) {
	fmt.Println("hello", name)
}

// 定义接收多个参数的函数
func intSum(a int, b int) int {
	ret := a + b
	return ret
}

// 可以指定返回值的名字
func intSum2(a int, b int) (ret int) {
	ret = a + b
	return ret
}

// 3.函数接收可变参数，在函数体中是切片类型
// 固定参数和可变参数同时出现时，可变参数要放在最后
// go语言中没有默认参数
func intSum3(a ...int) {
	fmt.Println(a)
}

// go语言中函数参数类型简写
func intSum5(a, b int) (ret int) {
	ret = a + b
	return ret
}

// 4.定义具有多个返回值的函数
func calc(a, b int) (sum, sub int) {
	sum = a + b
	sub = a - b
	return
}

func main() {
	//sayHello()

	//name := "xinKong"
	//sayHello2(name)

	//intSum(1, 5)
	//intSum3(10, 20)

	x, y := calc(100, 200)
	fmt.Println(x, y)
}
